//package com.shou.domain.xxx.adapter;
//
//public interface IMqServiceAdapter {
//    /**
//     * 发送简单消息
//     * @param topic 主题，不能为空
//     * @param message 消息内容，不能为空
//     */
//    void sendMessage(String topic, String message);
//
//    /**
//     * 同步发送消息
//     * 同步发送消息是指，Producer 发出⼀条消息后，会在收到 MQ 返回的 ACK 之后才发下⼀条消息。该方式的消息可靠性最高，但消息发送效率太低。
//     * @param topic 主题，不能为空
//     * @param message 消息内容，不能为空
//     */
//    void syncSendMessage(String topic, String message);
//
//    /**
//     * 异步发送消息
//     * 异步发送消息是指，Producer 发出消息后无需等待 MQ 返回 ACK，直接发送下⼀条消息。该方式的消息可靠性可以得到保障，消息发送效率也可以。
//     * @param topic 主题，不能为空
//     * @param message 消息内容，不能为空
//     */
//    void asyncSendMessage(String topic, String message);
//
//    /**
//     * 单向发送消息是指，Producer 仅负责发送消息，不等待、不处理 MQ 的 ACK。该发送方式时 MQ 也不返回 ACK。该方式的消息发送效率最高，但消息可靠性较差。
//     * @param topic 主题，不能为空
//     * @param message 消息内容，不能为空
//     */
//    void sendOneWayMessage(String topic, String message);
//
//    /**
//     *  顺序消息指的是，严格按照消息的发送顺序进行消费的消息(FIFO)。
//     * @param topic 主题，不能为空
//     * @param message 消息内容，不能为空
//     * @param shardingKey 分片键（Sharding Key），用于确保相同分片键的消息被发送到同一个队列中。这样，当消费者消费消息时，相同分片键的消息会按照发送顺序被顺序消费。
//     */
//    void syncSendOrderlyMessage(String topic, String message, String shardingKey);
//
//    /**
//     * 延时消息
//     * 当消息写入到Broker后，在指定的时长后才可被消费处理的消息，称为延时消息。延时消息的延迟时长不支持随意时长的延迟，
//     * 是通过特定的延迟等级来指定的。延时等级默认有18个，可以在broker.conf中增加配置，然后重启broker:
//     * @param topic  主题，不能为空
//     * @param message  消息内容，不能为空
//     * @param timeout: 发送消息的超时时间，单位是毫秒。在timeout内没有被成功发送，那么发送操作将会超时。
//     * @param delayLevel 这是消息的延迟级别
//     */
//    void sendDelayedMessage(String topic, String message,Integer timeout, Integer delayLevel);
//}
